       IDENTIFICATION DIVISION.
       PROGRAM-ID. ALTERACAO.

       ENVIRONMENT DIVISION.
       CONFIGURATION SECTION.
           SPECIAL-NAMES.
               DECIMAL-POINT IS COMMA.

       INPUT-OUTPUT SECTION.
        FILE-CONTROL.
           SELECT ARQ01 ASSIGN TO "ARQUIV1.DAT"
               ORGANIZATION IS INDEXED
               ACCESS MODE IS DYNAMIC
               RECORD KEY IS FD-ARQ01-CONTA
               FILE STATUS IS FS-ARQ01.    

       DATA DIVISION.
       FILE SECTION.
       FD ARQ01.
       01 FD-ARQ01-REG.
            05 FD-ARQ01-CONTA           PIC 9(006).
            05 FD-ARQ01-CPF             PIC 9(011).
            05 FD-ARQ01-NOME            PIC X(060).

            05 FD-ARQ01-DATA-NASC.
                10 FD-ARQ01-ANO-NASC    PIC 9999.
                10 FD-ARQ01-MES-NASC    PIC 99.
                10 FD-ARQ01-DIA-NASC    PIC 99.

            05 FD-ARQ01-DATA-ABERTURA-CONTA.
                10 FD-ARQ01-ANO-CONTA   PIC 9999.
                10 FD-ARQ01-MES-CONTA   PIC 99.
                10 FD-ARQ01-DIA-CONTA   PIC 99.

            05 FD-ARQ01-SALDO           PIC S9(008).

       WORKING-STORAGE SECTION.
       01 FS-ARQ01                 PIC X(2).
       01 WS-OPC                   PIC 9 VALUE ZEROES.

       PROCEDURE DIVISION.
           PERFORM INICIO.
           PERFORM PROCESSA UNTIL WS-OPC EQUALS 9.
           PERFORM FIM.

       INICIO.
		   OPEN I-O ARQ01
           IF FS-ARQ01 EQUALS "00"
              DISPLAY "ABERTURA DE ARQUIVO OK"
           ELSE
              IF FS-ARQ01 EQUALS "05"
                 DISPLAY "ARQUIVO VAZIO."
              ELSE
                 DISPLAY "ERRO " FS-ARQ01 "."
                 MOVE "9" TO WS-OPC
              END-IF
           END-IF.

        PROCESSA.
           DISPLAY "DIGITE A CONTA PARA ALTERACAO: "
           ACCEPT FD-ARQ01-CONTA

           READ ARQ01

           IF FS-ARQ01 EQUALS "00"
              DISPLAY "CONTA CORRENTE: " FD-ARQ01-CONTA 
              DISPLAY "CPF: " FD-ARQ01-CPF
              DISPLAY "NOME: " FD-ARQ01-NOME
              DISPLAY "DATA DE NASCIMENTO: " FD-ARQ01-DIA-NASC "
      -"/" FD-ARQ01-MES-NASC "/" FD-ARQ01-ANO-NASC.
              DISPLAY "DATA DE ABERTURA DA CONTA: " FD-ARQ01-DIA-CONTA "
      -"/" FD-ARQ01-MES-CONTA "/" FD-ARQ01-ANO-CONTA.
              DISPLAY "SALDO: " FD-ARQ01-SALDO.
           ELSE
              IF FS-ARQ01 EQUALS "23"
                 DISPLAY "ARQUIVO NAO EXISTENTE"
              ELSE
                 DISPLAY "ERRO - " FS-ARQ01
              END-IF.
           END-IF.
		   
           DISPLAY " ".
           DISPLAY "ENTRE COM OS NOVOS DADOS PARA ALTERAÇÃO:".
           DISPLAY " ".
		   
           PERFORM ALTERA.

           DISPLAY "DESEJA CONTINUAR?"
           DISPLAY "SIM - 0"
           DISPLAY "NAO - 9"
           ACCEPT WS-OPC.

	   ALTERA.
              DISPLAY "DIGITE SEU CPF: ".
              ACCEPT FD-ARQ01-CPF.
              DISPLAY "DIGITE SEU NOME: ".
              ACCEPT FD-ARQ01-NOME.
              DISPLAY "DIGITE SEU ANO DE NASCIMENTO: ".
              ACCEPT FD-ARQ01-ANO-NASC.
              DISPLAY "DIGITE SEU MES DE NASCIMENTO: ".
              ACCEPT FD-ARQ01-MES-NASC.
              DISPLAY "DIGITE SEU DIA DE NASCIMENTO: ".
              ACCEPT FD-ARQ01-DIA-NASC.

             MOVE FUNCTION CURRENT-DATE TO FD-ARQ01-DATA-ABERTURA-CONTA.

              REWRITE FD-ARQ01-REG.
 
              IF FS-ARQ01 EQUALS "00"
                 DISPLAY "ALTERACAO OK".
              ELSE
                 IF FS-ARQ01 EQUALS "22"
                    DISPLAY "GRAVACAO NAO EFETUADA".
                 ELSE
                    DISPLAY "ERRO DESCONHECIDO - " FS-ARQ01.
                 END-IF.
              END-IF.

       FIM.
	       CLOSE ARQ01
	       GOBACK.